Repository navigation
ci: install dependencies from uv.lock - #7
Merged
Merged
Conversation
|
The CI integration job runs pytest -m integration --timeout=120, but pytest-timeout was never a dependency, so pytest exited with "unrecognized arguments: --timeout=120" before collecting a test. The integration suite has not actually run in CI on any recent main build. uv.lock also pinned testcontainers 4.14.2, which mypy treats as untyped, so `uv sync --extra dev && uv run mypy floci` failed under strict mode while CI (pip, testcontainers 4.15.0) passed. The lock now resolves testcontainers 4.15.0 on Python 3.10 and later, matching CI. Lockfile changes: pytest-timeout 2.4.0 added, testcontainers 4.14.2 to 4.15.0 (Python 3.10+). Everything else is the newer uv lockfile revision (3 to 5) dropping redundant markers; no other version changes. Signed-off-by: Hector Ventura <hectorvent@gmail.com>
CI ran pip install -e ".[dev]", which ignores uv.lock and pulls the newest release of every dev tool. A ruff release that started formatting Markdown code blocks broke the format check with no change in this repo, and the CI and local toolchains had drifted apart (ruff 0.16.10 in CI against 0.15.12 in the lock). Install with uv sync --locked and run every tool through uv run, so CI uses exactly the versions in the lockfile and fails when the lock is out of date with pyproject.toml. Signed-off-by: Hector Ventura <hectorvent@gmail.com>
mypy 2.x no longer accepts python_version = "3.9" and falls back to 3.10 with a warning. Set it explicitly. Ruff's py39 target and the 3.9 unit-test job still cover 3.9 compatibility, and requires-python is unchanged. Signed-off-by: Hector Ventura <hectorvent@gmail.com>
hectorvent
force-pushed
the
ci/install-from-uv-lock
branch
from
October 7, 2026 01:57
b08c28d to
394b8d3
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
CI installs with
pip install -e ".[dev]", which ignoresuv.lockand resolves the newest release of every dev tool on each run. As a result:README.mdand failedruff format --checkon chore: add pytest-timeout and refresh uv.lock #6, with no change in this repo.Change
actions/setup-pythonwithastral-sh/setup-uv(pinned to the v10.2.0 SHA, with caching on).uv sync --locked --extra dev. Ifuv.lockis out of date withpyproject.toml, CI now fails.uv run.[tool.mypy] python_versionto"3.10". The locked mypy 2.x rejects"3.9"and falls back to 3.10 with a warning. Ruff'spy39target and the 3.9 unit-test job still cover 3.9 compatibility.Depends on #6
This branch includes #6's commit (
pytest-timeoutplus the refresheduv.lock). Both are needed:main's lock pins testcontainers 4.14.2, which ships no type hints, somypy --strictfails withClass cannot subclass "DockerContainer".--timeout=120, which needspytest-timeout.Merge #6 first, then rebase this branch so it reduces to the single CI commit.
Verified locally (against the locked versions)
uv lock --checkpasses.ruff check,ruff format --check,mypy flociand unit tests all pass.pytest -m integration --timeout=120 --cocollects the integration tests.